#ifndef		IAUDP_HPP_
# define	IAUDP_HPP_

# include	<iostream>
# include	<string>
# include       <errno.h>
# include       <stdio.h>
# include       <unistd.h>
# include       <stdlib.h>
# include       <string.h>
# include       <unistd.h>
# include       <stdio.h>
# include       <netdb.h>
# include       <sys/types.h>
# include       <sys/socket.h>
# include       <netinet/in.h>
# include       <arpa/inet.h>

# include "Buffer.hpp"
# include "SockInfo.hpp"
# include	"FdInfos.hpp"
# include	"TimeVal.hpp"

class IAUdp
{
public:
  virtual int SendTo(int	fd,
		   SockInfo si,
		   char *buf,
		   int	size) = 0;

  virtual int RecvFrom(int	fd,
		   SockInfo si,
		   char *buf,
		   int	size) = 0;
  virtual int Bind(int fd,
		   SockInfo &si) = 0;
  virtual int Socket() = 0;
  virtual int	OpenSocket(int	&FdSocket) = 0;
  virtual int SetSockNonBlocking(int fd) = 0;
};

#endif		/* IAUDP_HPP_ */
